home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 24 / Amiga Format AFCD24 (Feb 1998, Issue 108).iso / -in_the_mag- / emulation / macos / cpu68000.cpt.hqx / CPU68000 / CPU / cpu6.c < prev    next >
C/C++ Source or Header  |  1997-06-16  |  12KB  |  459 lines

  1. #include "sysconfig.h"
  2. #include "sysdeps.h"
  3. #include "config.h"
  4. #include "options.h"
  5. #include "machdep/m68k.h"
  6. #include "my_memory.h"
  7. #include "custom.h"
  8. #include "readcpu.h"
  9. #include "newcpu.h"
  10. #include "compiler.h"
  11. #include "cputbl.h"
  12. #if !defined (MEMFUNCS_DIRECT_REQUESTED) || defined (DIRECT_MEMFUNCS_SUCCESSFUL)
  13. void REGPARAM2 CPU_OP_NAME(_6000)(uae_u32 opcode) /* Bcc */
  14. {
  15. {    char *oldpcp = (char *)regs.pc_p;
  16. {    uae_s16 src = nextiword();
  17.     if (cctrue(0)) {
  18.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  19.     fill_prefetch();
  20.     }
  21. }}}
  22. void REGPARAM2 CPU_OP_NAME(_6001)(uae_u32 opcode) /* Bcc */
  23. {
  24.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  25. {    char *oldpcp = (char *)regs.pc_p;
  26. {    uae_u32 src = srcreg;
  27.     if (cctrue(0)) {
  28.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  29.     fill_prefetch();
  30.     }
  31. }}}
  32. void REGPARAM2 CPU_OP_NAME(_60ff)(uae_u32 opcode) /* Bcc */
  33. {
  34. {    char *oldpcp = (char *)regs.pc_p;
  35. {    uae_s32 src = nextilong();
  36.     if (cctrue(0)) {
  37.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  38.     fill_prefetch();
  39.     }
  40. }}}
  41. void REGPARAM2 CPU_OP_NAME(_6100)(uae_u32 opcode) /* BSR */
  42. {
  43. {    char *oldpcp = (char *)regs.pc_p;
  44. {    uae_s16 src = nextiword();
  45.     uae_s32 s = (uae_s32)src - (((char *)regs.pc_p) - oldpcp);
  46.     m68k_do_bsr(s);
  47.     fill_prefetch();
  48. }}}
  49. void REGPARAM2 CPU_OP_NAME(_6101)(uae_u32 opcode) /* BSR */
  50. {
  51.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  52. {    char *oldpcp = (char *)regs.pc_p;
  53. {    uae_u32 src = srcreg;
  54.     uae_s32 s = (uae_s32)src - (((char *)regs.pc_p) - oldpcp);
  55.     m68k_do_bsr(s);
  56.     fill_prefetch();
  57. }}}
  58. void REGPARAM2 CPU_OP_NAME(_61ff)(uae_u32 opcode) /* BSR */
  59. {
  60. {    char *oldpcp = (char *)regs.pc_p;
  61. {    uae_s32 src = nextilong();
  62.     uae_s32 s = (uae_s32)src - (((char *)regs.pc_p) - oldpcp);
  63.     m68k_do_bsr(s);
  64.     fill_prefetch();
  65. }}}
  66. void REGPARAM2 CPU_OP_NAME(_6200)(uae_u32 opcode) /* Bcc */
  67. {
  68. {    char *oldpcp = (char *)regs.pc_p;
  69. {    uae_s16 src = nextiword();
  70.     if (cctrue(2)) {
  71.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  72.     fill_prefetch();
  73.     }
  74. }}}
  75. void REGPARAM2 CPU_OP_NAME(_6201)(uae_u32 opcode) /* Bcc */
  76. {
  77.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  78. {    char *oldpcp = (char *)regs.pc_p;
  79. {    uae_u32 src = srcreg;
  80.     if (cctrue(2)) {
  81.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  82.     fill_prefetch();
  83.     }
  84. }}}
  85. void REGPARAM2 CPU_OP_NAME(_62ff)(uae_u32 opcode) /* Bcc */
  86. {
  87. {    char *oldpcp = (char *)regs.pc_p;
  88. {    uae_s32 src = nextilong();
  89.     if (cctrue(2)) {
  90.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  91.     fill_prefetch();
  92.     }
  93. }}}
  94. void REGPARAM2 CPU_OP_NAME(_6300)(uae_u32 opcode) /* Bcc */
  95. {
  96. {    char *oldpcp = (char *)regs.pc_p;
  97. {    uae_s16 src = nextiword();
  98.     if (cctrue(3)) {
  99.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  100.     fill_prefetch();
  101.     }
  102. }}}
  103. void REGPARAM2 CPU_OP_NAME(_6301)(uae_u32 opcode) /* Bcc */
  104. {
  105.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  106. {    char *oldpcp = (char *)regs.pc_p;
  107. {    uae_u32 src = srcreg;
  108.     if (cctrue(3)) {
  109.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  110.     fill_prefetch();
  111.     }
  112. }}}
  113. void REGPARAM2 CPU_OP_NAME(_63ff)(uae_u32 opcode) /* Bcc */
  114. {
  115. {    char *oldpcp = (char *)regs.pc_p;
  116. {    uae_s32 src = nextilong();
  117.     if (cctrue(3)) {
  118.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  119.     fill_prefetch();
  120.     }
  121. }}}
  122. void REGPARAM2 CPU_OP_NAME(_6400)(uae_u32 opcode) /* Bcc */
  123. {
  124. {    char *oldpcp = (char *)regs.pc_p;
  125. {    uae_s16 src = nextiword();
  126.     if (cctrue(4)) {
  127.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  128.     fill_prefetch();
  129.     }
  130. }}}
  131. void REGPARAM2 CPU_OP_NAME(_6401)(uae_u32 opcode) /* Bcc */
  132. {
  133.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  134. {    char *oldpcp = (char *)regs.pc_p;
  135. {    uae_u32 src = srcreg;
  136.     if (cctrue(4)) {
  137.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  138.     fill_prefetch();
  139.     }
  140. }}}
  141. void REGPARAM2 CPU_OP_NAME(_64ff)(uae_u32 opcode) /* Bcc */
  142. {
  143. {    char *oldpcp = (char *)regs.pc_p;
  144. {    uae_s32 src = nextilong();
  145.     if (cctrue(4)) {
  146.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  147.     fill_prefetch();
  148.     }
  149. }}}
  150. void REGPARAM2 CPU_OP_NAME(_6500)(uae_u32 opcode) /* Bcc */
  151. {
  152. {    char *oldpcp = (char *)regs.pc_p;
  153. {    uae_s16 src = nextiword();
  154.     if (cctrue(5)) {
  155.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  156.     fill_prefetch();
  157.     }
  158. }}}
  159. void REGPARAM2 CPU_OP_NAME(_6501)(uae_u32 opcode) /* Bcc */
  160. {
  161.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  162. {    char *oldpcp = (char *)regs.pc_p;
  163. {    uae_u32 src = srcreg;
  164.     if (cctrue(5)) {
  165.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  166.     fill_prefetch();
  167.     }
  168. }}}
  169. void REGPARAM2 CPU_OP_NAME(_65ff)(uae_u32 opcode) /* Bcc */
  170. {
  171. {    char *oldpcp = (char *)regs.pc_p;
  172. {    uae_s32 src = nextilong();
  173.     if (cctrue(5)) {
  174.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  175.     fill_prefetch();
  176.     }
  177. }}}
  178. void REGPARAM2 CPU_OP_NAME(_6600)(uae_u32 opcode) /* Bcc */
  179. {
  180. {    char *oldpcp = (char *)regs.pc_p;
  181. {    uae_s16 src = nextiword();
  182.     if (cctrue(6)) {
  183.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  184.     fill_prefetch();
  185.     }
  186. }}}
  187. void REGPARAM2 CPU_OP_NAME(_6601)(uae_u32 opcode) /* Bcc */
  188. {
  189.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  190. {    char *oldpcp = (char *)regs.pc_p;
  191. {    uae_u32 src = srcreg;
  192.     if (cctrue(6)) {
  193.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  194.     fill_prefetch();
  195.     }
  196. }}}
  197. void REGPARAM2 CPU_OP_NAME(_66ff)(uae_u32 opcode) /* Bcc */
  198. {
  199. {    char *oldpcp = (char *)regs.pc_p;
  200. {    uae_s32 src = nextilong();
  201.     if (cctrue(6)) {
  202.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  203.     fill_prefetch();
  204.     }
  205. }}}
  206. void REGPARAM2 CPU_OP_NAME(_6700)(uae_u32 opcode) /* Bcc */
  207. {
  208. {    char *oldpcp = (char *)regs.pc_p;
  209. {    uae_s16 src = nextiword();
  210.     if (cctrue(7)) {
  211.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  212.     fill_prefetch();
  213.     }
  214. }}}
  215. void REGPARAM2 CPU_OP_NAME(_6701)(uae_u32 opcode) /* Bcc */
  216. {
  217.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  218. {    char *oldpcp = (char *)regs.pc_p;
  219. {    uae_u32 src = srcreg;
  220.     if (cctrue(7)) {
  221.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  222.     fill_prefetch();
  223.     }
  224. }}}
  225. void REGPARAM2 CPU_OP_NAME(_67ff)(uae_u32 opcode) /* Bcc */
  226. {
  227. {    char *oldpcp = (char *)regs.pc_p;
  228. {    uae_s32 src = nextilong();
  229.     if (cctrue(7)) {
  230.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  231.     fill_prefetch();
  232.     }
  233. }}}
  234. void REGPARAM2 CPU_OP_NAME(_6800)(uae_u32 opcode) /* Bcc */
  235. {
  236. {    char *oldpcp = (char *)regs.pc_p;
  237. {    uae_s16 src = nextiword();
  238.     if (cctrue(8)) {
  239.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  240.     fill_prefetch();
  241.     }
  242. }}}
  243. void REGPARAM2 CPU_OP_NAME(_6801)(uae_u32 opcode) /* Bcc */
  244. {
  245.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  246. {    char *oldpcp = (char *)regs.pc_p;
  247. {    uae_u32 src = srcreg;
  248.     if (cctrue(8)) {
  249.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  250.     fill_prefetch();
  251.     }
  252. }}}
  253. void REGPARAM2 CPU_OP_NAME(_68ff)(uae_u32 opcode) /* Bcc */
  254. {
  255. {    char *oldpcp = (char *)regs.pc_p;
  256. {    uae_s32 src = nextilong();
  257.     if (cctrue(8)) {
  258.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  259.     fill_prefetch();
  260.     }
  261. }}}
  262. void REGPARAM2 CPU_OP_NAME(_6900)(uae_u32 opcode) /* Bcc */
  263. {
  264. {    char *oldpcp = (char *)regs.pc_p;
  265. {    uae_s16 src = nextiword();
  266.     if (cctrue(9)) {
  267.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  268.     fill_prefetch();
  269.     }
  270. }}}
  271. void REGPARAM2 CPU_OP_NAME(_6901)(uae_u32 opcode) /* Bcc */
  272. {
  273.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  274. {    char *oldpcp = (char *)regs.pc_p;
  275. {    uae_u32 src = srcreg;
  276.     if (cctrue(9)) {
  277.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  278.     fill_prefetch();
  279.     }
  280. }}}
  281. void REGPARAM2 CPU_OP_NAME(_69ff)(uae_u32 opcode) /* Bcc */
  282. {
  283. {    char *oldpcp = (char *)regs.pc_p;
  284. {    uae_s32 src = nextilong();
  285.     if (cctrue(9)) {
  286.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  287.     fill_prefetch();
  288.     }
  289. }}}
  290. void REGPARAM2 CPU_OP_NAME(_6a00)(uae_u32 opcode) /* Bcc */
  291. {
  292. {    char *oldpcp = (char *)regs.pc_p;
  293. {    uae_s16 src = nextiword();
  294.     if (cctrue(10)) {
  295.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  296.     fill_prefetch();
  297.     }
  298. }}}
  299. void REGPARAM2 CPU_OP_NAME(_6a01)(uae_u32 opcode) /* Bcc */
  300. {
  301.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  302. {    char *oldpcp = (char *)regs.pc_p;
  303. {    uae_u32 src = srcreg;
  304.     if (cctrue(10)) {
  305.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  306.     fill_prefetch();
  307.     }
  308. }}}
  309. void REGPARAM2 CPU_OP_NAME(_6aff)(uae_u32 opcode) /* Bcc */
  310. {
  311. {    char *oldpcp = (char *)regs.pc_p;
  312. {    uae_s32 src = nextilong();
  313.     if (cctrue(10)) {
  314.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  315.     fill_prefetch();
  316.     }
  317. }}}
  318. void REGPARAM2 CPU_OP_NAME(_6b00)(uae_u32 opcode) /* Bcc */
  319. {
  320. {    char *oldpcp = (char *)regs.pc_p;
  321. {    uae_s16 src = nextiword();
  322.     if (cctrue(11)) {
  323.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  324.     fill_prefetch();
  325.     }
  326. }}}
  327. void REGPARAM2 CPU_OP_NAME(_6b01)(uae_u32 opcode) /* Bcc */
  328. {
  329.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  330. {    char *oldpcp = (char *)regs.pc_p;
  331. {    uae_u32 src = srcreg;
  332.     if (cctrue(11)) {
  333.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  334.     fill_prefetch();
  335.     }
  336. }}}
  337. void REGPARAM2 CPU_OP_NAME(_6bff)(uae_u32 opcode) /* Bcc */
  338. {
  339. {    char *oldpcp = (char *)regs.pc_p;
  340. {    uae_s32 src = nextilong();
  341.     if (cctrue(11)) {
  342.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  343.     fill_prefetch();
  344.     }
  345. }}}
  346. void REGPARAM2 CPU_OP_NAME(_6c00)(uae_u32 opcode) /* Bcc */
  347. {
  348. {    char *oldpcp = (char *)regs.pc_p;
  349. {    uae_s16 src = nextiword();
  350.     if (cctrue(12)) {
  351.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  352.     fill_prefetch();
  353.     }
  354. }}}
  355. void REGPARAM2 CPU_OP_NAME(_6c01)(uae_u32 opcode) /* Bcc */
  356. {
  357.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  358. {    char *oldpcp = (char *)regs.pc_p;
  359. {    uae_u32 src = srcreg;
  360.     if (cctrue(12)) {
  361.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  362.     fill_prefetch();
  363.     }
  364. }}}
  365. void REGPARAM2 CPU_OP_NAME(_6cff)(uae_u32 opcode) /* Bcc */
  366. {
  367. {    char *oldpcp = (char *)regs.pc_p;
  368. {    uae_s32 src = nextilong();
  369.     if (cctrue(12)) {
  370.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  371.     fill_prefetch();
  372.     }
  373. }}}
  374. void REGPARAM2 CPU_OP_NAME(_6d00)(uae_u32 opcode) /* Bcc */
  375. {
  376. {    char *oldpcp = (char *)regs.pc_p;
  377. {    uae_s16 src = nextiword();
  378.     if (cctrue(13)) {
  379.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  380.     fill_prefetch();
  381.     }
  382. }}}
  383. void REGPARAM2 CPU_OP_NAME(_6d01)(uae_u32 opcode) /* Bcc */
  384. {
  385.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  386. {    char *oldpcp = (char *)regs.pc_p;
  387. {    uae_u32 src = srcreg;
  388.     if (cctrue(13)) {
  389.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  390.     fill_prefetch();
  391.     }
  392. }}}
  393. void REGPARAM2 CPU_OP_NAME(_6dff)(uae_u32 opcode) /* Bcc */
  394. {
  395. {    char *oldpcp = (char *)regs.pc_p;
  396. {    uae_s32 src = nextilong();
  397.     if (cctrue(13)) {
  398.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  399.     fill_prefetch();
  400.     }
  401. }}}
  402. void REGPARAM2 CPU_OP_NAME(_6e00)(uae_u32 opcode) /* Bcc */
  403. {
  404. {    char *oldpcp = (char *)regs.pc_p;
  405. {    uae_s16 src = nextiword();
  406.     if (cctrue(14)) {
  407.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  408.     fill_prefetch();
  409.     }
  410. }}}
  411. void REGPARAM2 CPU_OP_NAME(_6e01)(uae_u32 opcode) /* Bcc */
  412. {
  413.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  414. {    char *oldpcp = (char *)regs.pc_p;
  415. {    uae_u32 src = srcreg;
  416.     if (cctrue(14)) {
  417.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  418.     fill_prefetch();
  419.     }
  420. }}}
  421. void REGPARAM2 CPU_OP_NAME(_6eff)(uae_u32 opcode) /* Bcc */
  422. {
  423. {    char *oldpcp = (char *)regs.pc_p;
  424. {    uae_s32 src = nextilong();
  425.     if (cctrue(14)) {
  426.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  427.     fill_prefetch();
  428.     }
  429. }}}
  430. void REGPARAM2 CPU_OP_NAME(_6f00)(uae_u32 opcode) /* Bcc */
  431. {
  432. {    char *oldpcp = (char *)regs.pc_p;
  433. {    uae_s16 src = nextiword();
  434.     if (cctrue(15)) {
  435.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  436.     fill_prefetch();
  437.     }
  438. }}}
  439. void REGPARAM2 CPU_OP_NAME(_6f01)(uae_u32 opcode) /* Bcc */
  440. {
  441.     uae_u32 srcreg = (uae_s32)(uae_s8)(opcode & 255);
  442. {    char *oldpcp = (char *)regs.pc_p;
  443. {    uae_u32 src = srcreg;
  444.     if (cctrue(15)) {
  445.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  446.     fill_prefetch();
  447.     }
  448. }}}
  449. void REGPARAM2 CPU_OP_NAME(_6fff)(uae_u32 opcode) /* Bcc */
  450. {
  451. {    char *oldpcp = (char *)regs.pc_p;
  452. {    uae_s32 src = nextilong();
  453.     if (cctrue(15)) {
  454.     regs.pc_p = (uae_u8 *)(oldpcp + (uae_s32)src);
  455.     fill_prefetch();
  456.     }
  457. }}}
  458. #endif
  459.